package com.sg.controller.bff;

import com.sg.service.biz.bff.EvaCalcService;
import com.sg.dto.biz.bff.req.*;
import com.sg.dto.biz.bff.res.*;
import com.sg.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
@Api(value = "EvaCalc", tags = {"EvaCalc"})
@RestController
// @RequestMapping("/oms/evaCalc/")
public class EvaCalcController {

    @Autowired
    EvaCalcService evaCalcService;

    /**
     * B3执行修正进度值/实际值/费用等
     * gen by moon at 6/24/2024, 4:47:27 AM
     */
    @PostMapping("/oms/evaCalc/implementAdjustedProgressActualCostAmountEtc")
    @ApiOperation(value = "B3执行修正进度值/实际值/费用等", response = OkrResult.class)
    public OkrResult<BffImplementAdjustedProgressActualCostAmountEtcRespDto> implementAdjustedProgressActualCostAmountEtc(@RequestBody(required = false) @Validated BffImplementAdjustedProgressActualCostAmountEtcReqDto reqDTO) {
        return OkrResult.success(evaCalcService.implementAdjustedProgressActualCostAmountEtc(reqDTO));
    }

    /**
     * B3执行分段更新目标标准数据(管理)
     * gen by moon at 7/5/2024, 11:49:27 PM
     */
    @PostMapping("/oms/mgt/evaCalc/implementSegUpdateTargetStandardData")
    @ApiOperation(value = "B3执行分段更新目标标准数据(管理)", response = OkrResult.class)
    public OkrResult<BffImplementSegUpdateTargetStandardDataRespDto> implementSegUpdateTargetStandardData(@RequestBody(required = false) @Validated BffImplementSegUpdateTargetStandardDataReqDto reqDTO) {
        return OkrResult.success(evaCalcService.implementSegUpdateTargetStandardData(reqDTO));
    }

    /**
     * B3开启标志性成果对接
     * gen by moon at 7/13/2024, 1:13:37 AM
     */
    @PostMapping("/oms/evaCalc/updateAchivementInterface")
    @ApiOperation(value = "B3开启标志性成果对接", response = OkrResult.class)
    public OkrResult<BffUpdateAchivementInterfaceRespDto> updateAchivementInterface(@RequestBody(required = false) @Validated BffUpdateAchivementInterfaceReqDto reqDTO) {
        return OkrResult.success(evaCalcService.updateAchivementInterface(reqDTO));
    }

    /**
     * B3执行修正总结资料及图片
     * gen by moon at 7/14/2024, 6:49:16 PM
     */
    @PostMapping("/oms/evaCalc/implementAdjustedCompilationMaterialsOrPic")
    @ApiOperation(value = "B3执行修正总结资料及图片", response = OkrResult.class)
    public OkrResult<BffImplementAdjustedCompilationMaterialsOrPicRespDto> implementAdjustedCompilationMaterialsOrPic(@RequestBody(required = false) @Validated BffImplementAdjustedCompilationMaterialsOrPicReqDto reqDTO) {
        return OkrResult.success(evaCalcService.implementAdjustedCompilationMaterialsOrPic(reqDTO));
    }

    /**
     * B3查询汇报任务树筛选条件列表
     * gen by moon at 7/20/2024, 11:15:46 PM
     */
    @PostMapping("/oms/evaCalc/queryReportTaskTreeFilterList")
    @ApiOperation(value = "B3查询汇报任务树筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskTreeFilterListRespDto> queryReportTaskTreeFilterList(@RequestBody(required = false) @Validated BffQueryReportTaskTreeFilterListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryReportTaskTreeFilterList(reqDTO));
    }

    /**
     * B3查询汇报任务归属周期筛选条件列表
     * gen by moon at 7/20/2024, 11:15:58 PM
     */
    @PostMapping("/oms/evaCalc/queryReportTaskAttributionCycleFilterList")
    @ApiOperation(value = "B3查询汇报任务归属周期筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskAttributionCycleFilterListRespDto> queryReportTaskAttributionCycleFilterList(@RequestBody(required = false) @Validated BffQueryReportTaskAttributionCycleFilterListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryReportTaskAttributionCycleFilterList(reqDTO));
    }

    /**
     * B3查询汇报给我下属筛选条件列表
     * gen by moon at 7/21/2024, 2:49:20 PM
     */
    @PostMapping("/oms/evaCalc/queryReportToMeSubordinateFilterList")
    @ApiOperation(value = "B3查询汇报给我下属筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportToMeSubordinateFilterListRespDto> queryReportToMeSubordinateFilterList(@RequestBody(required = false) @Validated BffQueryReportToMeSubordinateFilterListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryReportToMeSubordinateFilterList(reqDTO));
    }

    /**
     * B3查询我相关汇报任务部门筛选条件列表
     * gen by moon at 7/21/2024, 2:49:32 PM
     */
    @PostMapping("/oms/evaCalc/queryRelatedMeReportTaskDeptFilterList")
    @ApiOperation(value = "B3查询我相关汇报任务部门筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryRelatedMeReportTaskDeptFilterListRespDto> queryRelatedMeReportTaskDeptFilterList(@RequestBody(required = false) @Validated BffQueryRelatedMeReportTaskDeptFilterListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryRelatedMeReportTaskDeptFilterList(reqDTO));
    }

    /**
     * B3查询未完成汇报任务列表
     * gen by moon at 8/22/2024, 12:29:53 AM
     */
    @PostMapping("/oms/evaCalc/queryIncompleteReportTaskList")
    @ApiOperation(value = "B3查询未完成汇报任务列表", response = OkrResult.class)
    public OkrResult<BffQueryIncompleteReportTaskListRespDto> queryIncompleteReportTaskList(@RequestBody(required = false) @Validated BffQueryIncompleteReportTaskListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryIncompleteReportTaskList(reqDTO));
    }

    /**
     * B3查询目标内容最新数据点列表
     * gen by moon at 8/22/2024, 12:30:03 AM
     */
    @PostMapping("/oms/evaCalc/queryTargetContNewestDatasList")
    @ApiOperation(value = "B3查询目标内容最新数据点列表", response = OkrResult.class)
    public OkrResult<BffQueryTargetContNewestDatasListRespDto> queryTargetContNewestDatasList(@RequestBody(required = false) @Validated BffQueryTargetContNewestDatasListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryTargetContNewestDatasList(reqDTO));
    }

    /**
     * B3查询汇报任务周期筛选列表
     * gen by moon at 9/12/2024, 7:28:39 PM
     */
    @PostMapping("/oms/evaCalc/queryReportTaskCycleFilterList")
    @ApiOperation(value = "B3查询汇报任务周期筛选列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskCycleFilterListRespDto> queryReportTaskCycleFilterList(@RequestBody(required = false) @Validated BffQueryReportTaskCycleFilterListReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryReportTaskCycleFilterList(reqDTO));
    }

    /**
     * B3查询目标内容周期导航列表(边界)
     * gen by moon at 9/25/2024, 10:11:47 PM
     */
    @PostMapping("/oms/evaCalc/queryTargetContCyclePhaseMenuListBorder")
    @ApiOperation(value = "B3查询目标内容周期导航列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryTargetContCyclePhaseMenuListBorderRespDto> queryTargetContCyclePhaseMenuListBorder(@RequestBody(required = false) @Validated BffQueryTargetContCyclePhaseMenuListBorderReqDto reqDTO) {
        return OkrResult.success(evaCalcService.queryTargetContCyclePhaseMenuListBorder(reqDTO));
    }
}
